package com.xb.loan.cashier.service;


import com.xb.loan.cashier.service.bean.CashierPayChannelBO;
import com.xb.loan.cashier.service.bean.CashierPayChannelTypeBO;
import com.xb.loan.cashier.service.bean.CashierPlatBO;
import com.xb.loan.log.exception.BizException;

import java.util.List;
import java.util.Map;

/**
 * 提供给后台管理使用的接口
 */
public interface ICashierConfigManagerService {

	/***************收银台-第三方支付渠道类型配置相关接口***************/
	
	/**
	 * 分页查询所有第三方支付渠道类型
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public List<Map<String, Object>> queryPayChannelTypeByPage(int pageNum, int pageSize);

	/**
	 * 查询第三方支付渠道类型总条数
	 * @return
	 */
	public int queryPayChannelTypeCount();

	/**
	 * 查询所有第三方支付渠道类型
	 * @return
	 */
	public List<CashierPayChannelTypeBO> queryPayChannelTypeListAll();

    /***************收银台-第三方支付渠道配置相关接口***************/

	/**
	 * 添加第三方支付渠道
	 * @param payChannel
	 * @throws BizException
	 */
	public void savePayChannel(CashierPayChannelBO payChannel) throws BizException;

	/**
	 * 根据第三方支付渠道ID删除
	 * @param payChannelId
	 * @throws BizException
	 */
	public void delPayChannel(String payChannelId) throws BizException;

	/**
	 * 修改第三方支付渠道
	 * @param payChannel
	 * @throws BizException
	 */
	public void updatePayChannel(CashierPayChannelBO payChannel) throws BizException;

	/**
	 * 查询所有第三方支付渠道
	 * @return
	 */
	public List<Map<String, Object>> queryPayChannelList();

	/**
	 * 根据第三方渠道ID查询
	 * @param payChannelId
	 * @return
	 */
	public CashierPayChannelBO selectByChannelId(String payChannelId);

	/***************收银台-平台配置相关接口***************/

	/**
	 * 添加平台
	 * @param cashierPlat
	 * @param payChannels
	 * @throws Exception
	 */
	public void saveCashierPlat(CashierPlatBO cashierPlat, String[] payChannels) throws BizException;

	/**
	 * 修改平台
	 * @param cashierPlat
	 * @param payChannels
	 * @throws Exception
	 */
	public void updateCashierPlat(CashierPlatBO cashierPlat, String[] payChannels) throws BizException;

	/**
	 * 根据平台ID删除
	 * @param platId
	 * @throws Exception
	 */
	public void deleteCashierPlat(String platId) throws BizException;

	/**
	 * 查询所有平台信息
	 * @return
	 */
	public List<CashierPlatBO> queryCashierPlatListAll();

	/**
	 * 修改平台状态
	 * @param platId
	 * @param enbale 0：可用；1：不可用
	 * @throws Exception
	 */
	public void updateCashierPlatStatus(String platId, String enbale) throws BizException;
	
	/**
	 * 根据平台ID查询所有第三方支付渠道
	 * @param platId
	 * @return
	 */
	public List<CashierPayChannelBO> queryPayChannelsByPlatId(String platId);
}
